In some instances, a merchant service provider may operate a server or servers that process payment transactions that are conducted by consumers with merchants. The merchant service provider may communicate with the merchant's client-side device or devices using a communications network such as the Internet. A merchant's device(s) may execute one or more applications that interact with the merchant service provider. Such applications may include a “shopping cart” to enable consumers to select and purchase goods or services, a point of sale terminal application for conducting a transaction to provide payment for goods or services, a reporting application to generate a report on the transactions conducted with the merchant, an accounting application, etc. The merchant applications may provide data to the merchant service provider, and typically are also able to request information or cause the performance of some function or operation by the merchant service provider. The requests are typically contained in “messages” and provided to the merchant service provider via an application programming interface (API) that the merchant service provider exposes to the merchant (and hence to the merchant's applications). The API (or APIs) permit communication between the merchant's data processing system and that of the merchant service provider, by allowing applications executed by the merchant to initiate specific data processing tasks that are executed by the merchant service provider.
In a typical situation, an application executing on a merchant's device may issue a request or “call” for some function to be performed by an application executing on a server operated by the merchant service provider. For example, the merchant's device may send a message to the merchant service provider that includes a request to process a payment transaction (e.g., by indicating a name or identification for a process or application to be executed, along with the relevant transaction data). This allows the merchant's data processing system to communicate with the merchant service provider to initiate a desired operation.
However, a problem can arise if a merchant generates an excessive number of requests for data or functions from the merchant service provider, where the number, rate, or some other characteristic of the requests is sufficient to have a negative impact on the ability of the merchant service provider to perform its higher priority processing tasks. For example, intentionally or as the result of a malfunction, a merchant application may generate a large number of requests for report generating functions or other forms of administrative “housekeeping”. Responding to these requests can cause the merchant service provider to experience delays or errors in performing its higher priority processing tasks, such as processing payment transactions (or other revenue producing activities) for that merchant or for other merchants. This is an undesirable use of the data processing resources provided by the merchant service provider as both the merchant, the merchant service provider, and even perhaps other affected merchants (whose processing tasks are impacted by the allocation of resources to processing lower priority requests generated by the first merchant) will generally prefer that data processing resources be allocated to the processing of higher priority tasks.
What is a desired is a system, apparatus, and method for preventing an excessive use of resources by a user of an merchant service provider's data processing system. Embodiments of the invention address this and other problems both individually and collectively.